home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Icon 8.1 / mep1 / External Functions / XCMDs⁄XFCNs / C Sources / IconXCmd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-08-15  |  4.8 KB  |  88 lines  |  [TEXT/KAHL]

  1. /* IconXCmd.h - Definitions to use when creating XCMDs and XFCNs for use with ProIcon */
  2.  
  3. #ifndef extended
  4. #define extended double
  5. #endif
  6.  
  7. typedef struct XCmdBlock {
  8.     short    paramCount;         /* number of arguments to XCMD or XFCN */
  9.     Handle  params[16];            /* handles of input arguments */
  10.     Handle  returnValue;          /* handle of result string */
  11.     Boolean    passFlag;             /* pass on to another handler (not supported) */
  12.  
  13.     void    (*entryPoint)();    /* call back to ProIcon */
  14.     short    request;              /* call back request */
  15.     short    result;              /* call back  result code */
  16.     long    inArgs[8];            /* call back input arguments */
  17.     long    outArgs[4];            /* call back output arguments */
  18.    } XCmdBlock, *XCmdBlockPtr;
  19.    
  20. typedef unsigned char Str31[32];
  21. typedef unsigned char *Str31Ptr;
  22.  
  23. enum requestcodes {                /* call back request codes */
  24.     xreqSendCardMessage=1,        /*  1 - not supported */ 
  25.     xreqEvalExpr,                /*  2 - not supported */
  26.     xreqStringLength,            /*  3 - C string length */
  27.     xreqStringMatch,            /*  4 - case-insensitive string search */
  28.     xreqSendHCMessage,             /*  5 - not supported */
  29.     xreqZeroBytes,                 /*  6 - zero bytes in memory */
  30.     xreqPasToZero,                /*  7 - pascal string to C string with handle */
  31.     xreqZeroToPas,                /*  8 - C string to pascal string */
  32.     xreqStrToLong,                /*  9 - string to unsigned long conversion */
  33.     xreqStrToNum,                /* 10 - string to signed long conversion */
  34.     xreqStrToBool,                /* 11 - true/false string to boolean conversion */
  35.     xreqStrToExt,                /* 12 - string to extended (80-bit) real conversion */
  36.     xreqLongToStr,                /* 13 - unsigned long to string conversin */
  37.     xreqNumToStr,                /* 14 - signed long to string conversion */
  38.     xreqNumToHex,                /* 15 - long to hexidecimal conversion */
  39.     xreqBoolToStr,                /* 16 - boolean to true/false string conversion */
  40.     xreqExtToStr,                /* 17 - extended (80-bit) real to string conversion */
  41.     xreqGetGlobal,                /* 18 - get global */
  42.     xreqSetGlobal,                /* 19 - set global */
  43.     xreqGetFieldByName,            /* 20 - not supported */
  44.     xreqGetFieldByNum,            /* 21 - not supported */
  45.     xreqGetFieldByID,            /* 22 - not supported */
  46.     xreqSetFieldByName,            /* 23 - not supported */
  47.     xreqSetFieldByNum,            /* 24 - not supported */
  48.     xreqSetFieldByID,            /* 25 - not supported */
  49.     xreqStringEqual,               /* 26 - case-insensitive string equal compare */
  50.     xreqReturnToPas,               /* 27 - copy up to return or end of C string */
  51.     xreqScanToReturn,             /* 28 - scan to return of end of C string */
  52.     xreqScanToZero=39              /* 39   scan to end of C string */
  53.     };
  54.  
  55. enum resultcodes {                /* call back result codes */
  56.     xresSucc,
  57.     xresFail,
  58.     xresNotImp};
  59.   
  60. typedef void (*procPtr)(void );
  61.  
  62. /* Prototypes for callback functions */
  63.  
  64. pascal void        SendCardMessage(XCmdBlockPtr paramPtr, StringPtr msg);
  65. pascal Handle    EvalExpr(XCmdBlockPtr paramPtr, StringPtr expr);
  66. pascal long        StringLength(XCmdBlockPtr paramPtr, StringPtr strPtr);
  67. pascal Ptr        StringMatch(XCmdBlockPtr paramPtr, StringPtr pattern, Ptr target);
  68. pascal void        SendHCMessage(XCmdBlockPtr paramPtr, StringPtr msg);
  69. pascal void        ZeroBytes(XCmdBlockPtr paramPtr, Ptr dstPtr, long count);
  70. pascal Handle    PasToZero(XCmdBlockPtr paramPtr, StringPtr pasStr);
  71. pascal void        ZeroToPas(XCmdBlockPtr paramPtr, char *zeroStr, StringPtr pasStr);
  72. pascal long        StrToLong(XCmdBlockPtr paramPtr, Str31Ptr strPtr);
  73. pascal long        StrToNum(XCmdBlockPtr paramPtr, Str31Ptr str);
  74. pascal Boolean    StrToBool(XCmdBlockPtr paramPtr, Str31Ptr str);
  75. pascal void        StrToExt(XCmdBlockPtr paramPtr, Str31Ptr str, extended *myext);
  76. pascal void        LongToStr(XCmdBlockPtr paramPtr, long posNum, Str31Ptr mystr);
  77. pascal void        NumToStr(XCmdBlockPtr paramPtr, long num, Str31Ptr mystr);
  78. pascal void        NumToHex(XCmdBlockPtr paramPtr, long num, short nDigits, Str31Ptr mystr);
  79. pascal void        BoolToStr(XCmdBlockPtr paramPtr, Boolean bool, Str31Ptr mystr);
  80. pascal void        ExtToStr(XCmdBlockPtr paramPtr, extended *myext, Str31Ptr mystr);
  81. pascal Handle    GetGlobal(XCmdBlockPtr paramPtr, StringPtr globName);
  82. pascal void        SetGlobal(XCmdBlockPtr paramPtr, StringPtr globName, Handle globValue);
  83. pascal Handle    GetFieldByName(XCmdBlockPtr paramPtr, Boolean cardFieldFlag, StringPtr fieldName);
  84. pascal Handle    GetFieldByNum(XCmdBlockPtr paramPtr, Boolean cardFieldFlag, short fieldNum);
  85. pascal Handle    GetFieldByID(XCmdBlockPtr paramPtr, Boolean cardFieldFlag, short fieldID);
  86. pascal void        SetFieldByName(XCmdBlockPtr paramPtr, Boolean cardFieldFlag, StringPtr fieldName, Handle fieldVal);
  87. pascal void        SetFieldByNum(XCmdBlockPtr paramPtr, Boolean cardFieldFlag, short fieldNum, Handle fieldVal);
  88. pascal void        SetFieldByID(XCmdBlockPtr paramPtr